package ywpt.service.contract;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;

import ywpt.model.ContractType;
import ywpt.model.PaymentContract;

public interface PaymentContractService {

	public abstract int getPaymentContractsCountByCriteria(DetachedCriteria query);

	public abstract List<PaymentContract> getPaymentContracts(
			DetachedCriteria query, int pageSize, int i);

	public abstract String createPaymentCode();
	
	public abstract List<PaymentContract> getPaymentTypes (DetachedCriteria query);

	public abstract PaymentContract getPaymentContractById(Long id);

	public abstract void savePaymentContract(PaymentContract paymentContract,Long typeId,
			Long providerId);

	public abstract void updatePaymentContract(PaymentContract paymentContract,Long typeId,
			Long providerId);

	public abstract void removePaymentContract(Long id);

	public abstract List<PaymentContract> getPaymentContracts();

	public abstract List<ContractType> getContractTypes();

	public abstract List<PaymentContract> getPaymentContracts(DetachedCriteria query);

}
